/*
 * Copyright (c) 2005, 2014 vacoor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 */
package org.vacoor.nothing.web.captcha;

import java.awt.image.BufferedImage;
import java.io.Serializable;
import java.util.Date;

/**
 * @author vacoor
 */
public interface ImageCaptcha extends Serializable {

    Serializable getId();

    BufferedImage getChallenge();

    /**
     * 验证响应是否正确
     */
    boolean validate(String response);

    /**
     * 销毁 challenge
     */
    void disposeChallenge();

    /**
     * getChallenge方法是否已经调用过
     */
    boolean hasGetChallengeBeenCalled();

    /**
     * 获取验证码的生效时间(getChallenge方法调用的时间)
     * 如果 getChallenge 方法没有调用返回 null
     */
    Date getEffectiveDate();

}
